/**
 * @type {JSFoundSet<db:/infocom/productos>}
 *
 * @properties={typeid:35,uuid:"4AB65AD5-F51D-4034-8208-07CAE0A0FFC5",variableType:-4}
 */
var $productos = databaseManager.getFoundSet('infocom','productos');

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"C4B6D0F7-8B42-4D63-BFFF-FD2BBE0B5E7A"}
 */
function cancelar(event) 
{
	var nombre = application.getWindow('copia_prod')
	nombre.hide()
	nombre.destroy()
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"CAF5F066-D93B-43E5-943A-DC5C1A3E63BD"}
 * @AllowToRunInFind
 */
function confirmar(event) 
{
	if (scopes.globals.nuevo_producto == null || scopes.globals.nuevo_producto == '' || scopes.globals.nuevo_producto_descr == null || scopes.globals.nuevo_producto_descr == '' )
	{	
		globals.gMensaje = 'Debe informar Codigo y Descripcion del nuevo Producto' 
		globals.DIALOGS.showInfoDialog('Copia de Producto y su Despiece',  globals.gMensaje,  "OK") 
		return false;
	}
	
	$productos.find()
	$productos.cod_producto = scopes.globals.nuevo_producto
	var $cant = $productos.search()
	if ($cant != 0)
	{
		globals.gMensaje = 'Ya existe producto con el nuevo codigo' 
		globals.DIALOGS.showInfoDialog('Copia de Producto y su Despiece',  globals.gMensaje,  "OK") 
		return false
	}
		
	copiar_producto_version_despiece()
	
	var nombre = application.getWindow('copia_prod')
	nombre.hide()
	nombre.destroy()
	return true
}

/**
 * @properties={typeid:24,uuid:"B56AE68A-C48D-43A4-AFD8-010D30BE10CC"}
 * @AllowToRunInFind
 */
function copiar_producto_version_despiece() 
{	
	
// CREAR FOUNDSET de PRODUCTOS  para copiar /////////////////////////////////////////////////////////
	//var $productos = databaseManager.getFoundSet('infocom','productos')	  // se creo como variable del form
	
//  GENERAR PRODUCTO, VERSION del PRODUCTO y DESPIECE de la VERSION
		databaseManager.startTransaction()
		// PRODUCTO
		$productos.newRecord()
		$productos.cod_producto = scopes.globals.nuevo_producto
		$productos.descripcion  = scopes.globals.nuevo_producto_descr
		
		$productos.precio_unitario = precio_unitario;
		$productos.tasa_iva_id = tasa_iva_id;
		$productos.controla_stock = controla_stock;
		$productos.costo = costo;
		$productos.moneda_id = moneda_id;
		$productos.utilidad = utilidad;
		$productos.tipo = tipo;
		$productos.descuento = descuento;
		$productos.stock_minimo = stock_minimo;
		$productos.inactivo = inactivo;
		$productos.costo_en_pesos = costo_en_pesos;
		$productos.cambio_pendiente = cambio_pendiente;
		$productos.unidad = unidad;
		$productos.unidad_alter = unidad_alter;
		$productos.coef_unidades = coef_unidades;
		$productos.version_id_default = version_id_default;
		$productos.observ_lista_precio = observ_lista_precio;
		$productos.centro_costos_id = centro_costos_id
		$productos.merma_porc = merma_porc;
		$productos.unidad_cant = unidad_cant;
		$productos.unidad_alter_cant = unidad_alter_cant;
	

		// VERSION DEFAULT
		$productos.productos_to_versiones.newRecord();
		$productos.productos_to_versiones.fecha_inicial = productos_to_versiones.fecha_inicial
		$productos.productos_to_versiones.descripcion   = 'Inicial copiada de  -  ' + cod_producto + ' - ' + productos_to_versiones.descripcion
		$productos.productos_to_versiones.marca_activa  = 1
		$productos.productos_to_versiones.observaciones = 'Copiada de  -  ' + cod_producto + ' - ' + productos_to_versiones.observaciones;
		// GRABA version
		var estado_save = databaseManager.saveData();  // se hace save para poder usar el id asignado version_id en despiece y el productos , si no da error
		if (estado_save == true)
		{  
			// DESPIECE de la version DEFAULT
			var hasta = productos_to_versiones.versiones_to_despiece_nivel_1.getSize()
			for( var i = 1 ; i <= hasta ; i ++)   
			{
				productos_to_versiones.versiones_to_despiece_nivel_1.setSelectedIndex(i)
				
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.newRecord()
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.producto_id_b2 = productos_to_versiones.versiones_to_despiece_nivel_1.producto_id_b2;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.cantidad = productos_to_versiones.versiones_to_despiece_nivel_1.cantidad;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.numerador = productos_to_versiones.versiones_to_despiece_nivel_1.numerador;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.divisor= productos_to_versiones.versiones_to_despiece_nivel_1.divisor;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.observaciones = 'Copiada de  -  ' + cod_producto + ' - ' + productos_to_versiones.versiones_to_despiece_nivel_1.observaciones;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.orden = productos_to_versiones.versiones_to_despiece_nivel_1.orden;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.numerador2 = productos_to_versiones.versiones_to_despiece_nivel_1.numerador2;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.divisor2 = productos_to_versiones.versiones_to_despiece_nivel_1.divisor2;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.numerador3 = productos_to_versiones.versiones_to_despiece_nivel_1.numerador3;
				$productos.productos_to_versiones.versiones_to_despiece_nivel_1.divisor3 = productos_to_versiones.versiones_to_despiece_nivel_1.divisor3
			}
			// GRABA despiece
			var estado_save = databaseManager.saveData();
			if (estado_save == true)
			{ 	// Version default el productos
					$productos.version_id_default = $productos.productos_to_versiones.version_id 
					if (estado_save == true)
					{
						databaseManager.commitTransaction()  
						globals.gMensaje ='Producto copiado '
						globals.DIALOGS.showInfoDialog('Copia de Producto y su Despiece',  globals.gMensaje,  "OK")
					}
					else
					{
						databaseManager.rollbackTransaction();
						globals.gMensaje =' Version default en el nuevo Producto no fue grabada - Revise los datos ingresados'
						globals.DIALOGS.showInfoDialog('Copia de Producto y su Despiece',  globals.gMensaje,  "OK")
					}
			}
			else
			{
				databaseManager.rollbackTransaction();
				globals.gMensaje =' Producto no fue copiado - Revise los datos de la version'
				globals.DIALOGS.showInfoDialog('Copia de Producto y su Despiece',  globals.gMensaje,  "OK")
			}			
  		}
		else
		{
			databaseManager.rollbackTransaction();
			globals.gMensaje =' Version default del nuevo Producto no fue grabada - Revise los datos ingresados'
			globals.DIALOGS.showInfoDialog('Copia de Producto y su Despiece',  globals.gMensaje,  "OK")
		}   
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"4A85F3D9-A798-4182-A046-87F7892B5221"}
 */
function onShow(firstShow, event) 
{
	scopes.globals.nuevo_producto = null
	scopes.globals.nuevo_producto_descr = null
}
